<?php
/**
 * 任务处理类
 * @author ice<iceinto@mallog.com.cn>
 */
class TaskAction extends CommonAction
{
	public function index(){
		$this->getTaskSituation();
		$this->display();
	}

	/**
	 * 任务分发
	 * 下面为处理流程
	 * 是否有执行任务信息
	 * 是否有审核退回任务
	 * 是否有需求退回任务
	 * 满足上面条件进行任务分配
	 * @author ice<iceinto@mallog.com.cn>
	 */
	public function handOut(){
		$status = 0;
		$data = null;
		$task = array();
		//添加对权限限制
		if($this->_role['role_id'] != 3){
			$this->ajaxReturn('', null, 0);
		}
		//判断要获取任务的工作人员
		$uid = $this->getLoginUserInfo();
		$user = $this->getUserById($uid);
		if($user){
			$TaskAllotModel = D('TaskAllot');
			$QueueModel = D('Queue');
			//1是否有执行中的任务
			if($QueueModel->getStatusCount(3, $uid) || $QueueModel->getStatusCount(2, $uid)){
				$data = L('_A_MISSION');
			}else if($QueueModel->getStatusCount(7, $uid)){
				//2是否有审核退回任务
				$task = $QueueModel->allotOneByStatus($uid, 7);
				if($task){
					$status = 1;
					$data = $task;
				}
			}else if($QueueModel->getStatusCount(5, $uid)){
				//3是否有需求退回任务
				$task = $QueueModel->allotOneByStatus($uid, 5);
				if($task){
					$status = 1;
					$data = $task;
				}
			}else{
				//如果都无就进行任务分配
				$task = $TaskAllotModel->allotUserOne($uid);
				if($task){
					$status = 1;
					$data = $task;
				}else{
					$status = 0;
					$data = '没有任务可以分配';
				}
			}
		}else{
			$data = L('_NOT_FOIND_USER');
		}
		$this->ajaxReturn($data, null, $status);
	}

	/*任务处理私有方法*/

	/**
	 * 获取当前用户有无分配任务
	 * @param int $uid 用户标识
	 * @author Ice<iceinto@mallog.com.cn>
	 */
	public function getHaveExecutionCount($uid){
		return  D('Task')->getHaveExecutionCount($uid);
	}

	/**
	 * 获取当前用户有无分配任务
	 * @param int $uid 用户标识
	 * @author Ice<iceinto@mallog.com.cn>
	 */
	public function getHaveAuditReturnCount($uid){
		return D('TaskAuditReturn')->getHaveReturnCount($uid);
	}

	/**
	 * 获取当前用户有无分配任务
	 * @param int $uid 用户标识
	 * @author Ice<iceinto@mallog.com.cn>
	 */
	public function getHaveReturnCount($uid){
		return D('TaskReturn')->getHaveReturnCount($uid);
	}
}
?>